package com.ruge.common.util;

import org.apache.commons.lang3.StringUtils;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

/**
 * @author ruge.wu
 * @program ruge
 * @description 脚本执行工具类
 * @date 2020-03-24 09:54
 **/
public class ScriptUtil {
    /**
     * 以js脚本执行
     *
     * @param str 待执行的命令
     * @return 执行结果
     * @throws ScriptException
     */
    public static Object eval(String str) {
        if (StringUtils.isNotBlank(str)) {
            if (StringUtils.endsWith(str, "=")) {
                str = StringUtils.substring(str, 0, str.length() - 1);
            }
            ScriptEngineManager manager = new ScriptEngineManager();
            ScriptEngine se = manager.getEngineByName("js");
            try {
                return se.eval(str);
            } catch (ScriptException e) {
                e.printStackTrace();
            }
        }

        return null;
    }

}
